package com.itheima.health.job;

import com.itheima.health.constant.RedisConstant;
import com.itheima.health.utils.QiniuUtils;
import org.springframework.beans.factory.annotation.Autowired;
import redis.clients.jedis.JedisPool;

import java.util.Iterator;
import java.util.Set;

/**
 * @ClassName ClearImgJob
 * @Description TODO
 * @Author ly
 * @Company 深圳黑马程序员
 * @Date 2019/8/24 12:20
 * @Version V1.0
 */
public class ClearImgJob {

    @Autowired // 在类中使用@Autowired，开启组件的自动扫描
    JedisPool jedisPool;

    // 清除图片，从redis中读取2个集合的数据，比较集合数据中不一致读取出来，删除七牛云上的图片，删除对应七牛云图片的redis中数据
    public void run(){
//        1：获取2个reids集合中的不同数据，将不同的数据封装到Set<String>
        Set<String> set = jedisPool.getResource().sdiff(RedisConstant.SETMEAL_PIC_RESOURCES, RedisConstant.SETMEAL_PIC_DB_RESOURCES);
        Iterator<String> iterator = set.iterator();
        while(iterator.hasNext()){
            String imgName = iterator.next();
            System.out.println("删除的图片是："+imgName);
            // 2：删除七牛云上的图片
            QiniuUtils.deleteFileFromQiniu(imgName);
            // 3：删除对应七牛云上图片的redis的key（RedisConstant.SETMEAL_PIC_RESOURCES）
            jedisPool.getResource().srem(RedisConstant.SETMEAL_PIC_RESOURCES,imgName);
        }
    }
}
